mult_lq Interface

public interface mult_lq

Module Procedures

private pure function mult_lq_mtx(lside, trans, a, tau, c) result(qc)

Multiplies a matrix by the orthogonal matrix from an LQ factorization.

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: lside

Set to true to compute ; else, set to false to compute .

logical, intent(in) :: trans

Set to true to compute ; else, set to false to compute .

real(kind=real64), intent(in), dimension(:,:) :: a

On input, an K-by-P matrix containing the elementary reflectors output from the LQ factorization. If lside is set to true, P = M; else, if lside is set to false, P = N.

real(kind=real64), intent(in), dimension(:) :: tau

A K-element array containing the scalar factors of each elementary reflector defined in a.

real(kind=real64), intent(in), dimension(:,:) :: c

The M-by-N matrix .

Return Value real(kind=real64), allocatable, dimension(:,:)

The M-by-N product of the orthogonal and the .

private pure function mult_lq_mtx_cmplx(lside, trans, a, tau, c) result(qc)

Multiplies a matrix by the orthogonal matrix from an LQ factorization.

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: lside

Set to true to compute ; else, set to false to compute .

logical, intent(in) :: trans

Set to true to compute ; else, set to false to compute .

complex(kind=real64), intent(in), dimension(:,:) :: a

On input, an K-by-P matrix containing the elementary reflectors output from the LQ factorization. If lside is set to true, P = M; else, if lside is set to false, P = N.

complex(kind=real64), intent(in), dimension(:) :: tau

A K-element array containing the scalar factors of each elementary reflector defined in a.

complex(kind=real64), intent(in), dimension(:,:) :: c

The M-by-N matrix .

Return Value complex(kind=real64), allocatable, dimension(:,:)

The M-by-N product of the orthogonal and the .

private pure function mult_lq_vec(trans, a, tau, c) result(qc)

Multiplies a vector with the orthogonal matrix from an LQ factorization such that .

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: trans

Set to true to compute ; else, set to false to compute .

real(kind=real64), intent(in), dimension(:,:) :: a

On input, an K-by-M matrix containing the elementary reflectors output from the LQ factorization. Notice, the contents of this matrix are restored on exit.

real(kind=real64), intent(in), dimension(:) :: tau

A K-element array containing the scalar factors of each elementary reflector defined in a.

real(kind=real64), intent(in), dimension(:) :: c

On input, the M-element vector .

Return Value real(kind=real64), allocatable, dimension(:)

The M-element product of the orthogonal matrix and the vector .

private pure function mult_lq_vec_cmplx(trans, a, tau, c) result(qc)

Multiplies a vector with the orthogonal matrix from an LQ factorization such that .

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: trans

Set to true to compute ; else, set to false to compute .

complex(kind=real64), intent(in), dimension(:,:) :: a

On input, an K-by-M matrix containing the elementary reflectors output from the LQ factorization. Notice, the contents of this matrix are restored on exit.

complex(kind=real64), intent(in), dimension(:) :: tau

A K-element array containing the scalar factors of each elementary reflector defined in a.

complex(kind=real64), intent(in), dimension(:) :: c

The M-element vector .

Return Value complex(kind=real64), allocatable, dimension(:)

The M-element product of the orthogonal matrix and the vector .